package com.hava.util;

import java.lang.reflect.Field;

import static com.hava.util.SimpleException.debug;

/**
 * Created by zhanpeng on 15-1-19.
 * * 其他类继承了这个类直接调用print可以打印所有的属性和属性的值
 */
public abstract class ObjectUtils {
    
    public String getSmallEntityName()
    {
        String entityName = this.getClass().getName();
        System.out.println(entityName);
        
        return entityName;
    }
    
    public void printProperties(){
        System.out.println("---" + this.getClass().getName() + "---");

        //由反射来获取property的属性名称、属性值
        Field[] fields = this.getClass().getDeclaredFields();
        for(Field field : fields)
        {
            //由于采用了自动化，反射访问的对象可能是私有类型，需要打开对应的权限
            field.setAccessible(true);
            try
            {
                System.out.println("property[" + field.getName() + "]:" + field.get(this));
            }
            catch (IllegalAccessException e) {
                debug(e);
            }
        }
    }
}